package pe.edu.upc.e41a.javasoft.service;

import java.util.List;

import javax.annotation.Resource;
import javax.persistence.TypedQuery;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import pe.edu.upc.e41a.javasoft.dao.PublicacionDao;
import pe.edu.upc.e41a.javasoft.dao.TransaccionDao;
import pe.edu.upc.e41a.javasoft.domain.Publicacion;

@Service
@Transactional
public class PortadaServiceImpl implements PortadaService {
	
	@Resource
	private PublicacionDao publicacionDao;
	
	@Resource
	private TransaccionDao transaccionDao;

	@Override
	public List<Publicacion> listarPublicacionMasVisitadas() {
		List<Publicacion> mListPublicaciones;
		mListPublicaciones = publicacionDao.listarPublicacionMasVisitadas();
		
		return mListPublicaciones;	
	}

	@Override
	public List<Publicacion> listarPublicacionMasVendidas() {
		List<Publicacion> mListPublicaciones;
		mListPublicaciones = publicacionDao.listarPublicacionMasVendidas();
		
		return mListPublicaciones;	
	}

	@Override
	public List<Publicacion> listarPublicacionTop() {
		TypedQuery<Publicacion> publicacionResultado=publicacionDao.findPublicacionsByTransaccions(transaccionDao.findAllTransaccions());
		return publicacionResultado.getResultList();

	}

}
